package main

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-18 13:47:48
 * @Description: 给你一个非空数组，返回此数组中 第三大的数 。如果不存在，则返回数组中最大的数。
 */
/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-18 13:47:50
 * @Description:
 */
func thirdMax(nums []int) int {
	var m1, m2, m3 int
	b := false
	for _, num := range nums {
		if num > m1 || !b {
			m1 = num
			b = true
		}
	}
	b = false
	for _, num := range nums {
		if num < m1 {
			if num > m2 || !b {
				m2 = num
				b = true
			}
		}
	}
	b = false

	for _, num := range nums {
		if num != m1 && num != m2 {
			if num > m3 || !b {
				m3 = num
				b = true
			}
		}
	}

	if b {
		return m3
	}
	return m1
}
